import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}

/**
 * 判断字符串是否为有效的URL地址
 * @param str 要验证的字符串
 * @returns 如果是有效的URL则返回true，否则返回false
 */
export function isUrl(str: string): boolean {
  if (!str || typeof str !== 'string') {
    return false;
  }

  try {
    // 使用URL构造函数进行验证
    const url = new URL(str);
    return url.protocol === 'http:' || url.protocol === 'https:';
  } catch {
    // 如果URL构造函数抛出错误，说明不是有效的URL
    return false;
  }
}
